<?php
class AdmController extends BaseController {
    function __construct($params = NULL) {
        $controller_name = Local::get('controller');
        $method_name = Local::get('method');
    	$this->view_name = Path::default_path(); 
		parent::__construct($params);

		//Загружаем список компонентов для редактирования
		$this->getComponents();
		$this->auth();
		
    }
	
	private function auth() {
        $id = Cookie::get('user_id');
        if ($id) {
            $user = new User($id);
            if ($user->getField('password') == Cookie::get('user_key'))
                $this->user = $user;
        }		
    }
	
    protected function show_404() {
        $this->view_name = '404';
        header("HTTP/1.1 404 Not Found");
        return FALSE;
    }
	
	protected function getComponents() {
		$items = Config::get('items');		
		
		$result = array();
		foreach ($items as $el=>$value) {
			$obj = new $el();
			if ($value['list_type'] != 'none')
			    $result[$el] = $obj->getNames();
		}
		
		$this->addBlockData('top_menu', 'items', $result);
	}
	
	//Некоторые страницы должны быть недоступны в зависимости от того,
    //рабочая ли это версия или версия разработчика, зарегистрирован ли пользователь или нет
    //И так далее
    protected function privacy($rule, $action = '', $param = '') {
        $is_private = FALSE;
        //if ($rule == 'is_developer' && !Config::get('is_developer'))
        //  $is_private = TRUE;
        //else if ($rule == 'logout' && $this->user)
        //  $is_private = TRUE;
        /*else*/ if ($rule == 'login' && !$this->user)
          $is_private = TRUE;
        
        if ($is_private) $this->produce_action($action, $param);
                
        return !$is_private;
    }
    
    private function produce_action($action, $param) {
        /*if ($action == '404')
          $this->show_404();
        else if ($action == 'redirect')
            header("Location: ".src($param));*/
        if ($action == 'login_form') {
            $this->view_name = 'login';
            $this->addJS('login');
        }
    }
	
	function __destruct() {
		$this->view_data['template']['user'] = FALSE;
        if ($this->user) $this->view_data['template']['user'] = $this->user->getHTMLFields();
		parent::__destruct();
	}
	
	
	
}
?>